﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;

namespace supervisor_de_cajas
{
    public class Gestion
    {
        Conexion conn = new Conexion();
        public string digitoVerificador(int rut)
        {
            int Digito;
            int Contador;
            int Multiplo;
            int Acumulador;
            string RutDigito;

            Contador = 2;
            Acumulador = 0;

            while (rut != 0)
            {
                Multiplo = (rut % 10) * Contador;
                Acumulador = Acumulador + Multiplo;
                rut = rut / 10;
                Contador = Contador + 1;
                if (Contador == 8)
                {
                    Contador = 2;
                }

            }

            Digito = 11 - (Acumulador % 11);
            RutDigito = Digito.ToString().Trim();
            if (Digito == 10)
            {
                RutDigito = "K";
            }
            if (Digito == 11)
            {
                RutDigito = "0";
            }
            return (RutDigito);
        }


        public void Limpiar(GroupBox ofrm)
        {
            // Checar todos los textbox del formulario
            foreach (Control oControls in ofrm.Controls)
            {
                if (oControls is TextBox)
                {
                    oControls.Text = ""; // Eliminar el texto del TextBox
                }
            }
        }

        public void eliminarCajero(int codigo)
        {
            conn.conectar();
            SqlDataAdapter da = new SqlDataAdapter();
            da.UpdateCommand = new SqlCommand("Update Cajero set estado='Inactivo' where idcajero=@cod", conn.conector);
            da.UpdateCommand.Parameters.Add(new SqlParameter("@cod", codigo));
            da.UpdateCommand.ExecuteNonQuery();
            conn.desconectar();
        }
        public void eliminarCliente(int codigo)
        {
            conn.conectar();
            SqlDataAdapter da = new SqlDataAdapter();
            da.UpdateCommand = new SqlCommand("Update Cliente set estado='Inactivo' where idcliente=@cod", conn.conector);
            da.UpdateCommand.Parameters.Add(new SqlParameter("@cod", codigo));
            da.UpdateCommand.ExecuteNonQuery();
            
            conn.desconectar();
        }
        public void eliminarPromocion(int codigo)
        {
            conn.conectar();
            SqlDataAdapter da = new SqlDataAdapter();
            da.UpdateCommand = new SqlCommand("Update promocion set estado='Inactivo' where idpromo=@cod", conn.conector);
            da.UpdateCommand.Parameters.Add(new SqlParameter("@cod", codigo));
            da.UpdateCommand.ExecuteNonQuery();

            conn.desconectar();
        }
        public void ActivarPromocion(int codigo)
        {
            conn.conectar();
            SqlDataAdapter da = new SqlDataAdapter();
            da.UpdateCommand = new SqlCommand("Update promocion set estado='Activo' where idpromo=@cod", conn.conector);
            da.UpdateCommand.Parameters.Add(new SqlParameter("@cod", codigo));
            da.UpdateCommand.ExecuteNonQuery();

            conn.desconectar();
        }
        public void ActivarCliente(int codigo)
        {
            conn.conectar();
            SqlDataAdapter da = new SqlDataAdapter();
            da.UpdateCommand = new SqlCommand("Update Cliente set estado='Activo' where idcliente=@cod", conn.conector);
            da.UpdateCommand.Parameters.Add(new SqlParameter("@cod", codigo));
            da.UpdateCommand.ExecuteNonQuery();
            conn.desconectar();
        }
        public void ActivarCajero(int codigo)
        {
            conn.conectar();
            SqlDataAdapter da = new SqlDataAdapter();
            da.UpdateCommand = new SqlCommand("Update Cajero set estado='Activo' where idcajero=@cod", conn.conector);
            da.UpdateCommand.Parameters.Add(new SqlParameter("@cod", codigo));
            da.UpdateCommand.ExecuteNonQuery();
            conn.desconectar();
        }
        public DataSet verCajeroFiltro(string filtro)
        {
            DataSet dataS = new DataSet();
            SqlDataAdapter data = new SqlDataAdapter();
            dynamic sql = "SELECT * FROM Cajero" + filtro;
            conn.conectar();
            SqlCommand cmd = new SqlCommand(sql, conn.conector);
            data.SelectCommand = cmd;
            data.Fill(dataS, "CAJERO");
            //se retorna un dataset con los datos llenados con la consulta de la busqueda
            conn.desconectar();
            //return dataS;
            return dataS;
        }
        public DataSet verClienteFiltro(string filtro)
        {
            DataSet dataS = new DataSet();
            SqlDataAdapter data = new SqlDataAdapter();
            dynamic sql = "SELECT c.idcliente,c.rut, c.nombre, c.apellido, c.porcentaje_acumulacion,tipo_cliente.descripcion AS Tipo_cliente, tipo_sexo.descripcion AS Sexo, tipo_de_rango_etario.descripcion AS Grupo_Etario,c.estado FROM cliente c INNER JOIN tipo_cliente ON c.idtipocliente = tipo_cliente.idtipocliente INNER JOIN tipo_de_rango_etario ON c.idtipo_etario = tipo_de_rango_etario.idtipo_etario INNER JOIN tipo_sexo ON c.idtipo_sexo = tipo_sexo.idtipo_sexo" + filtro;
            conn.conectar();
            SqlCommand cmd = new SqlCommand(sql, conn.conector);
            data.SelectCommand = cmd;
            data.Fill(dataS, "CLIENTE");
            //se retorna un dataset con los datos llenados con la consulta de la busqueda
            conn.desconectar();
            //return dataS;
            return dataS;
        }
        public DataSet verPromoFiltro(string filtro)
        {
            DataSet dataS = new DataSet();
            SqlDataAdapter data = new SqlDataAdapter();
            dynamic sql = "SELECT promocion.idpromo,promocion.descripcion, promocion.porcentaje_dscto, tipo_promocion.descripcion AS Tipo_de_Promocion, promocion.estado FROM promocion INNER JOIN tipo_promocion ON promocion.idtipo_promo = tipo_promocion.idtipo_promo" + filtro;
            conn.conectar();
            SqlCommand cmd = new SqlCommand(sql, conn.conector);
            data.SelectCommand = cmd;
            data.Fill(dataS, "PROMOCION");
            //se retorna un dataset con los datos llenados con la consulta de la busqueda
            conn.desconectar();
            //return dataS;
            return dataS;
        }
        public bool ExisteCajero(string rutCompleto)
        {

            // Conectar a la base de datos
            //SqlConnection cnn = null;
            //

            try
            {
                conn.conectar();
                // Conectar a la base de datos de SQL Server
                // (la cadena debe estar inicializada previamente)
                //conn = new SqlConnection(cadenaCnn);
                //conn.Open();
                // Definir la cadena que vamos a usar para comprobar
                // si el usuario y el password son correctos.
                // Utilizo parámetros para evitar inyección de código.
                System.Text.StringBuilder sel = new System.Text.StringBuilder();
                // Usando COUNT(*) nos devuelve el total que coincide
                // con lo indicado en el WHERE,
                // por tanto, si la clave y el usuario son correctos,
                // devolverá 1, sino, devolverá 0
                sel.Append("SELECT COUNT(*) FROM Cajero ");
                sel.Append("WHERE rut = @rut");
                // Definir el comando que vamos a ejecutar
                SqlCommand cmd = new SqlCommand(sel.ToString(), conn.conector);
                // SqlCommand cmd = new SqlCommand(sel.ToString());
                // Creamos los parámetros
                cmd.Parameters.Add("@rut", SqlDbType.NVarChar, 50);
                //cmd.Parameters.Add("@pass", SqlDbType.NVarChar, 50);
                //cmd.Parameters.Add("@perfil", SqlDbType.Int, 2);
                //
                // Asignamos los valores recibidos como parámetro
                cmd.Parameters["@rut"].Value = rutCompleto;
                //cmd.Parameters["@pass"].Value = pass;
                //cmd.Parameters["@perfil"].Value = perfil;
                //
                // Ejecutamos la consulta
                // ExecuteScalar devuelve la primera columna de la primera fila
                // por tanto, devolverá el número de coincidencias halladas,
                // que si es 1, quiere decir que el usuario y el password son correctos.
                int t = Convert.ToInt32(cmd.ExecuteScalar());
                // Cerramos la conexión
                conn.desconectar();
                //
                // Si el valor devuelto es cero
                // es que no es correcto.
                if (t == 0)
                {
                    return false;
                }

            }
            catch (Exception ex)
            {
                 MessageBox.Show("ERROR al conectar a la base de datos: \n","Comprobar usuario",
                     MessageBoxButtons.OK,
                     MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                string a = ex.Message;
                return false;
            }
            finally
            {
                if (conn != null)
                {
                    //conn.Dispose();
                }
            }
            //
            // Si llega aquí es que todo ha ido bien
            return true;
        }
        public bool ExistePromocion(string descripcion,string porcentaje,string tipodepromo)
        {

            // Conectar a la base de datos
            //SqlConnection cnn = null;
            //

            try
            {
                conn.conectar();
                // Conectar a la base de datos de SQL Server
                // (la cadena debe estar inicializada previamente)
                //conn = new SqlConnection(cadenaCnn);
                //conn.Open();
                // Definir la cadena que vamos a usar para comprobar
                // si el usuario y el password son correctos.
                // Utilizo parámetros para evitar inyección de código.
                System.Text.StringBuilder sel = new System.Text.StringBuilder();
                // Usando COUNT(*) nos devuelve el total que coincide
                // con lo indicado en el WHERE,
                // por tanto, si la clave y el usuario son correctos,
                // devolverá 1, sino, devolverá 0
                sel.Append("SELECT COUNT(*) FROM promocion INNER JOIN tipo_promocion ON promocion.idtipo_promo = tipo_promocion.idtipo_promo ");
                sel.Append("WHERE promocion.descripcion=@descripcion AND porcentaje_dscto=@porcentaje AND tipo_promocion.descripcion=@tipo");
                // Definir el comando que vamos a ejecutar
                SqlCommand cmd = new SqlCommand(sel.ToString(), conn.conector);
                // SqlCommand cmd = new SqlCommand(sel.ToString());
                // Creamos los parámetros
                cmd.Parameters.Add("@descripcion", SqlDbType.NVarChar, 100);
                cmd.Parameters.Add("@porcentaje", SqlDbType.NVarChar, 50);
                cmd.Parameters.Add("@tipo", SqlDbType.NVarChar, 50);
                //
                // Asignamos los valores recibidos como parámetro
                cmd.Parameters["@descripcion"].Value = descripcion;
                cmd.Parameters["@porcentaje"].Value = porcentaje;
                cmd.Parameters["@tipo"].Value = tipodepromo;
                //
                // Ejecutamos la consulta
                // ExecuteScalar devuelve la primera columna de la primera fila
                // por tanto, devolverá el número de coincidencias halladas,
                // que si es 1, quiere decir que el usuario y el password son correctos.
                int t = Convert.ToInt32(cmd.ExecuteScalar());
                // Cerramos la conexión
                conn.desconectar();
                //
                // Si el valor devuelto es cero
                // es que no es correcto.
                if (t == 0)
                {
                    return false;
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("ERROR al conectar a la base de datos: \n" + ex.Message, "Comprobar usuario");
                string a = ex.Message;
                return false;
            }
            finally
            {
                if (conn != null)
                {
                    //conn.Dispose();
                }
            }
            //
            // Si llega aquí es que todo ha ido bien
            return true;
        }
        public DataSet getClientes()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT c.idcliente,c.rut, c.nombre, c.apellido, c.porcentaje_acumulacion,tipo_cliente.descripcion AS Tipo_cliente, tipo_sexo.descripcion AS Sexo, tipo_de_rango_etario.descripcion AS Grupo_Etareo,c.estado FROM cliente c INNER JOIN tipo_cliente ON c.idtipocliente = tipo_cliente.idtipocliente INNER JOIN tipo_de_rango_etario ON c.idtipo_etario = tipo_de_rango_etario.idtipo_etario INNER JOIN tipo_sexo ON c.idtipo_sexo = tipo_sexo.idtipo_sexo", conn.conector);
            da.Fill(ds, "Clientes");
            conn.desconectar();
            return ds;
        }
        public DataSet getPromociones()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT promocion.idpromo,promocion.descripcion, promocion.porcentaje_dscto, tipo_promocion.descripcion AS Tipo_de_Promocion, promocion.estado FROM promocion INNER JOIN tipo_promocion ON promocion.idtipo_promo = tipo_promocion.idtipo_promo", conn.conector);
            da.Fill(ds, "PROMO");
            conn.desconectar();
            return ds;
        }
        public DataSet getClientesActivos()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT c.idcliente,c.rut, c.nombre, c.apellido, c.porcentaje_acumulacion,tipo_cliente.descripcion AS Tipo_cliente, tipo_sexo.descripcion AS Sexo, tipo_de_rango_etario.descripcion AS Grupo_Etareo,c.estado FROM cliente c INNER JOIN tipo_cliente ON c.idtipocliente = tipo_cliente.idtipocliente INNER JOIN tipo_de_rango_etario ON c.idtipo_etario = tipo_de_rango_etario.idtipo_etario INNER JOIN tipo_sexo ON c.idtipo_sexo = tipo_sexo.idtipo_sexo where estado='Activo'", conn.conector);
            da.Fill(ds, "Clientes");
            conn.desconectar();
            return ds;
        }
        public DataSet getClientesInActivos()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT c.idcliente,c.rut, c.nombre, c.apellido, c.porcentaje_acumulacion,tipo_cliente.descripcion AS Tipo_cliente, tipo_sexo.descripcion AS Sexo, tipo_de_rango_etario.descripcion AS Grupo_Etareo,c.estado FROM cliente c INNER JOIN tipo_cliente ON c.idtipocliente = tipo_cliente.idtipocliente INNER JOIN tipo_de_rango_etario ON c.idtipo_etario = tipo_de_rango_etario.idtipo_etario INNER JOIN tipo_sexo ON c.idtipo_sexo = tipo_sexo.idtipo_sexo where estado='Inactivo'", conn.conector);
            da.Fill(ds, "Clientes");
            conn.desconectar();
            return ds;
        }
        public DataSet getPromosActivos()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT promocion.idpromo,promocion.descripcion, promocion.porcentaje_dscto, tipo_promocion.descripcion AS Tipo_de_Promocion, promocion.estado FROM promocion INNER JOIN tipo_promocion ON promocion.idtipo_promo = tipo_promocion.idtipo_promo where estado='Activo'", conn.conector);
            da.Fill(ds, "Promo");
            conn.desconectar();
            return ds;
        }
        public DataSet getPromosInActivos()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT promocion.idpromo,promocion.descripcion, promocion.porcentaje_dscto, tipo_promocion.descripcion AS Tipo_de_Promocion, promocion.estado FROM promocion INNER JOIN tipo_promocion ON promocion.idtipo_promo = tipo_promocion.idtipo_promo where estado='Inactivo'", conn.conector);
            da.Fill(ds, "Promo");
            conn.desconectar();
            return ds;
        }
        public DataSet getCajerosActivos()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select * from cajero where estado='Activo'", conn.conector);
            da.Fill(ds, "Cajero");
            conn.desconectar();
            return ds;
        }
        public DataSet getCajerosInActivos()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select * from cajero where estado='Inactivo'", conn.conector);
            da.Fill(ds, "Cajero");
            conn.desconectar();
            return ds;
        }
        public int RecuperarIdSexo(string descrip)
        {
            Conexion conn = new Conexion();
            conn.conectar();

            string sql = "select idtipo_sexo from tipo_sexo where descripcion='" + descrip + "'";
            SqlCommand cmd = new SqlCommand(sql, conn.conector);


            return Convert.ToInt32(cmd.ExecuteScalar());

        }
        public int RecuperarIdpromo(string descrip)
        {
            Conexion conn = new Conexion();
            conn.conectar();

            string sql = "select idtipo_promo from tipo_promocion where descripcion='" + descrip + "'";
            SqlCommand cmd = new SqlCommand(sql, conn.conector);


            return Convert.ToInt32(cmd.ExecuteScalar());

        }
        public int RecuperarIdTipomulta(string descrip)
        {
            Conexion conn = new Conexion();
            conn.conectar();

            string sql = "select idtipo_multa from tipo_multa where descripcion='" + descrip + "'";
            SqlCommand cmd = new SqlCommand(sql, conn.conector);


            return Convert.ToInt32(cmd.ExecuteScalar());

        }
        public int RecuperarIdEtario(string descrip)
        {
            Conexion conn = new Conexion();
            conn.conectar();

            string sql = "select idtipo_etario from tipo_de_rango_etario where descripcion='" + descrip + "'";
            SqlCommand cmd = new SqlCommand(sql, conn.conector);


            return Convert.ToInt32(cmd.ExecuteScalar());

        }
        public DataSet buscarCombomoxSexo()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select descripcion from tipo_sexo ", conn.conector);
            da.Fill(ds, "Sexo");
            conn.desconectar();
            return ds;
        }
        public DataSet buscarCombomoxEtario()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select descripcion from tipo_de_rango_etario ", conn.conector);
            da.Fill(ds, "etario");
            conn.desconectar();
            return ds;
        }
        public DataSet buscarCombomoxTipoPromo()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select descripcion from tipo_promocion ", conn.conector);
            da.Fill(ds, "tipo_promocion");
            conn.desconectar();
            return ds;
        }
        public DataSet buscarCombomoxTipoMulta()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select descripcion from tipo_multa ", conn.conector);
            da.Fill(ds, "tipo_multa");
            conn.desconectar();
            return ds;
        }
        public bool ExisteSupervisor(string rutCompleto)
        {

            // Conectar a la base de datos
            //SqlConnection cnn = null;
            //

            try
            {
                conn.conectar();
                // Conectar a la base de datos de SQL Server
                // (la cadena debe estar inicializada previamente)
                //conn = new SqlConnection(cadenaCnn);
                //conn.Open();
                // Definir la cadena que vamos a usar para comprobar
                // si el usuario y el password son correctos.
                // Utilizo parámetros para evitar inyección de código.
                System.Text.StringBuilder sel = new System.Text.StringBuilder();
                // Usando COUNT(*) nos devuelve el total que coincide
                // con lo indicado en el WHERE,
                // por tanto, si la clave y el usuario son correctos,
                // devolverá 1, sino, devolverá 0
                sel.Append("SELECT COUNT(*) FROM supervisor ");
                sel.Append("WHERE rut = @rut");
                // Definir el comando que vamos a ejecutar
                SqlCommand cmd = new SqlCommand(sel.ToString(), conn.conector);
                // SqlCommand cmd = new SqlCommand(sel.ToString());
                // Creamos los parámetros
                cmd.Parameters.Add("@rut", SqlDbType.NVarChar, 50);
                //cmd.Parameters.Add("@pass", SqlDbType.NVarChar, 50);
                //cmd.Parameters.Add("@perfil", SqlDbType.Int, 2);
                //
                // Asignamos los valores recibidos como parámetro
                cmd.Parameters["@rut"].Value = rutCompleto;
                //cmd.Parameters["@pass"].Value = pass;
                //cmd.Parameters["@perfil"].Value = perfil;
                //
                // Ejecutamos la consulta
                // ExecuteScalar devuelve la primera columna de la primera fila
                // por tanto, devolverá el número de coincidencias halladas,
                // que si es 1, quiere decir que el usuario y el password son correctos.
                int t = Convert.ToInt32(cmd.ExecuteScalar());
                // Cerramos la conexión
                conn.desconectar();
                //
                // Si el valor devuelto es cero
                // es que no es correcto.
                if (t == 0)
                {
                    return false;
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("ERROR al conectar a la base de datos.", "Comprobar usuario",
                     MessageBoxButtons.OK,
                     MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                string a = ex.Message;
                return false;
            }
            finally
            {
                if (conn != null)
                {
                    //conn.Dispose();
                }
            }
            //
            // Si llega aquí es que todo ha ido bien
            return true;
        }
        public DataSet getActivossup()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT * from supervisor where estado= 'Activo'", conn.conector);
            da.Fill(ds, "supervisor");
            conn.desconectar();
            return ds;
        }
        public DataSet getInActivossup()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select * from supervisor where estado='Inactivo'", conn.conector);
            da.Fill(ds, "supervisor");
            conn.desconectar();
            return ds;
        }
        public DataSet verSupervisorFiltro(string filtro)
        {
            DataSet dataS = new DataSet();
            SqlDataAdapter data = new SqlDataAdapter();
            dynamic sql = "SELECT * FROM supervisor" + filtro;
            conn.conectar();
            SqlCommand cmd = new SqlCommand(sql, conn.conector);
            data.SelectCommand = cmd;
            data.Fill(dataS, "supervisor");
            //se retorna un dataset con los datos llenados con la consulta de la busqueda
            conn.desconectar();
            //return dataS;
            return dataS;
        }
        public void eliminarSupervisor(int codigo)
        {
            conn.conectar();
            SqlDataAdapter da = new SqlDataAdapter();
            da.UpdateCommand = new SqlCommand("Update supervisor set estado='Inactivo' where idsupervisor=@cod", conn.conector);
            da.UpdateCommand.Parameters.Add(new SqlParameter("@cod", codigo));
            da.UpdateCommand.ExecuteNonQuery();
            
            conn.desconectar();
            
        }
        public void ActivarSupervisor(int codigo)
        {
            conn.conectar();
            SqlDataAdapter da = new SqlDataAdapter();
            da.UpdateCommand = new SqlCommand("Update supervisor set estado='Activo' where idsupervisor=@cod", conn.conector);
            da.UpdateCommand.Parameters.Add(new SqlParameter("@cod", codigo));
            da.UpdateCommand.ExecuteNonQuery();
            conn.desconectar();
        }
        public DataSet buscarComboboxCE()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select categoria_empresa from tipo_cliente_factura", conn.conector);
            da.Fill(ds, "cliente_factura");
            conn.desconectar();
            return ds;
        }
        public DataSet getClientefactura()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT cliente_factura.idcliente_factura, cliente_factura.rut_empresa, cliente_factura.razon_social, cliente_factura.total_compra_cliente, tipo_cliente_factura.categoria_persona, cliente_factura.estado FROM cliente_factura INNER JOIN tipo_cliente_factura ON cliente_factura.idtipo_cliente_factura = tipo_cliente_factura.idtipo_cliente_factura", conn.conector);
            da.Fill(ds, "cliente_factura");
            conn.desconectar();
            return ds;
        }
        public void eliminarCliente_factura(int codigo)
        {
            conn.conectar();
            SqlDataAdapter da = new SqlDataAdapter();
            da.UpdateCommand = new SqlCommand("Update cliente_factura set estado='Inactivo' where idcliente_factura=@cod", conn.conector);
            da.UpdateCommand.Parameters.Add(new SqlParameter("@cod", codigo));
            da.UpdateCommand.ExecuteNonQuery();

            conn.desconectar();
        }
        public void ActivarCliente_factura(int codigo)
        {
            conn.conectar();
            SqlDataAdapter da = new SqlDataAdapter();
            da.UpdateCommand = new SqlCommand("Update cliente_factura set estado='Activo' where idcliente_factura=@cod", conn.conector);
            da.UpdateCommand.Parameters.Add(new SqlParameter("@cod", codigo));
            da.UpdateCommand.ExecuteNonQuery();
            conn.desconectar();
        }
        public DataSet verCliente_facturaFiltro(string filtro)
        {
            DataSet dataS = new DataSet();
            SqlDataAdapter data = new SqlDataAdapter();
            dynamic sql = "SELECT cliente_factura.idcliente_factura, cliente_factura.rut_empresa, cliente_factura.razon_social, cliente_factura.total_compra_cliente, tipo_cliente_factura.categoria_persona, cliente_factura.estado FROM cliente_factura INNER JOIN tipo_cliente_factura ON cliente_factura.idtipo_cliente_factura = tipo_cliente_factura.idtipo_cliente_factura" + filtro;
            conn.conectar();
            SqlCommand cmd = new SqlCommand(sql, conn.conector);
            data.SelectCommand = cmd;
            data.Fill(dataS, "cliente_factura");
            //se retorna un dataset con los datos llenados con la consulta de la busqueda
            conn.desconectar();
            //return dataS;
            return dataS;
        }
        public bool ExisteCliente_factura(string rutCompleto)
        {

            // Conectar a la base de datos
            //SqlConnection cnn = null;
            //

            try
            {
                conn.conectar();
                // Conectar a la base de datos de SQL Server
                // (la cadena debe estar inicializada previamente)
                //conn = new SqlConnection(cadenaCnn);
                //conn.Open();
                // Definir la cadena que vamos a usar para comprobar
                // si el usuario y el password son correctos.
                // Utilizo parámetros para evitar inyección de código.
                System.Text.StringBuilder sel = new System.Text.StringBuilder();
                // Usando COUNT(*) nos devuelve el total que coincide
                // con lo indicado en el WHERE,
                // por tanto, si la clave y el usuario son correctos,
                // devolverá 1, sino, devolverá 0
                sel.Append("SELECT COUNT(*) FROM cliente_factura ");
                sel.Append("WHERE rut_empresa = @rut_empresa");
                // Definir el comando que vamos a ejecutar
                SqlCommand cmd = new SqlCommand(sel.ToString(), conn.conector);
                // SqlCommand cmd = new SqlCommand(sel.ToString());
                // Creamos los parámetros
                cmd.Parameters.Add("@rut_empresa", SqlDbType.NVarChar, 50);
                //cmd.Parameters.Add("@pass", SqlDbType.NVarChar, 50);
                //cmd.Parameters.Add("@perfil", SqlDbType.Int, 2);
                //
                // Asignamos los valores recibidos como parámetro
                cmd.Parameters["@rut_empresa"].Value = rutCompleto;
                //cmd.Parameters["@pass"].Value = pass;
                //cmd.Parameters["@perfil"].Value = perfil;
                //
                // Ejecutamos la consulta
                // ExecuteScalar devuelve la primera columna de la primera fila
                // por tanto, devolverá el número de coincidencias halladas,
                // que si es 1, quiere decir que el usuario y el password son correctos.
                int t = Convert.ToInt32(cmd.ExecuteScalar());
                // Cerramos la conexión
                conn.desconectar();
                //
                // Si el valor devuelto es cero
                // es que no es correcto.
                if (t == 0)
                {
                    return false;
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("ERROR al conectar a la base de datos.", "Comprobar usuario",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                string a = ex.Message;
                return false;
            }
            finally
            {
                if (conn != null)
                {
                    //conn.Dispose();
                }
            }
            //
            // Si llega aquí es que todo ha ido bien
            return true;
        }
        public DataSet buscarComboboxTS()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select tipo_sociedad from tipo_cliente_factura", conn.conector);
            da.Fill(ds, "cliente_factura");
            conn.desconectar();
            return ds;
        }
        public DataSet buscarComboboxCP()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select categoria_persona from tipo_cliente_factura", conn.conector);
            da.Fill(ds, "cliente_factura");
            conn.desconectar();
            return ds;
        }
        public int RecuperarIdCP(string descrip)
        {
            Conexion conn = new Conexion();
            conn.conectar();

            string sql = "select idtipo_cliente_factura from tipo_cliente_factura where categoria_persona='" + descrip + "'";
            SqlCommand cmd = new SqlCommand(sql, conn.conector);


            return Convert.ToInt32(cmd.ExecuteScalar());

        }
        public DataSet getActivos()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT cliente_factura.idcliente_factura, cliente_factura.rut_empresa, cliente_factura.razon_social, cliente_factura.total_compra_cliente, tipo_cliente_factura.categoria_persona, cliente_factura.estado FROM cliente_factura INNER JOIN tipo_cliente_factura ON cliente_factura.idtipo_cliente_factura = tipo_cliente_factura.idtipo_cliente_factura where estado='Activo'", conn.conector);
            da.Fill(ds, "cliente_factura");
            conn.desconectar();
            return ds;
        }
        public DataSet getInActivos()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT cliente_factura.idcliente_factura, cliente_factura.rut_empresa, cliente_factura.razon_social, cliente_factura.total_compra_cliente, tipo_cliente_factura.categoria_persona, cliente_factura.estado FROM cliente_factura INNER JOIN tipo_cliente_factura ON cliente_factura.idtipo_cliente_factura = tipo_cliente_factura.idtipo_cliente_factura where estado='Inactivo'", conn.conector);
            da.Fill(ds, "cliente_factura");
            conn.desconectar();
            return ds;
        }
        public string recuperarNombreSesion(string id)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            //string msg = "";

            string sql = "SELECT nombre FROM supervisor where rut='"+id+"'";
            SqlCommand cmd = new SqlCommand(sql, conn.conector);
            //cmd.ExecuteNonQuery();
            string estado = Convert.ToString(cmd.ExecuteScalar());
            return estado;
        }
        public string recuperarApellidoSesion(string id)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            //string msg = "";

            string sql = "SELECT apellido FROM supervisor where rut='" + id + "'";
            SqlCommand cmd = new SqlCommand(sql, conn.conector);
            //cmd.ExecuteNonQuery();
            string estado = Convert.ToString(cmd.ExecuteScalar());
            return estado;
        }
        public string recuperarNombreSesionCajero(string id)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            //string msg = "";

            string sql = "SELECT nombre FROM cajero where rut='" + id + "'";
            SqlCommand cmd = new SqlCommand(sql, conn.conector);
            //cmd.ExecuteNonQuery();
            string estado = Convert.ToString(cmd.ExecuteScalar());
            return estado;
        }
        public string recuperarApellidoSesionCajero(string id)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            //string msg = "";

            string sql = "SELECT apellido FROM cajero where rut='" + id + "'";
            SqlCommand cmd = new SqlCommand(sql, conn.conector);
            //cmd.ExecuteNonQuery();
            string estado = Convert.ToString(cmd.ExecuteScalar());
            return estado;
        }
        public string recuperarNombreProducto(Int64 id)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            //string msg = "";

            string sql = "SELECT descripcion FROM producto where idproducto= " + id;
            SqlCommand cmd = new SqlCommand(sql, conn.conector);
            //cmd.ExecuteNonQuery();
            string estado = Convert.ToString(cmd.ExecuteScalar());
            return estado;
        }
        public string recuperarPrecioProducto(Int64 id)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            //string msg = "";

            string sql = "SELECT precio FROM producto where idproducto= " + id;
            SqlCommand cmd = new SqlCommand(sql, conn.conector);
            //cmd.ExecuteNonQuery();
            string estado = Convert.ToString(cmd.ExecuteScalar());
            return estado;
        }
        public DataSet VerCajeros(string rut)
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select idcajero,nombre,apellido from cajero where rut='"+rut+"'", conn.conector);
            da.Fill(ds, "Cajero");
            conn.desconectar();
            return ds;
        }
        public string insertarTurnoSupervisor(string Iniciosesion,string Cierresesion,string fecha,int idsupervisor)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            string msg = "";
            try
            {
                //crear el objeto para realizar un insert
                string sql = "insert into turno_supervisor(inicio_sesion,cierre_sesion,fecha,idsupervisor)values('"+Iniciosesion+"','"+Cierresesion+"','"+fecha+"',"+idsupervisor+")";
                SqlCommand cmd = new SqlCommand(sql, conn.conector);
                cmd.ExecuteNonQuery();
                //msg = "Nuevo alumno ingresado";
            }
            catch (SqlException)
            {
                msg = "Problema en la conexion ala base de datos.";
                //               msg = ex.Message;
            }
            conn.desconectar();
            return msg;
        }
        public string insertarTurnoCajero(string Iniciosesion, string Cierresesion, string fecha, int idsupervisor)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            string msg = "";
            try
            {
                //crear el objeto para realizar un insert
                string sql = "insert into turno(inicio_sesion,cierre_sesion,fecha,idcajero)values('" + Iniciosesion + "','" + Cierresesion + "','" + fecha + "'," + idsupervisor + ")";
                SqlCommand cmd = new SqlCommand(sql, conn.conector);
                cmd.ExecuteNonQuery();
                //msg = "Nuevo alumno ingresado";
            }
            catch (SqlException ex)
            {
                //msg = "Problema en la conexion ala base de datos.";
                               msg = ex.Message;
            }
            conn.desconectar();
            return msg;
        }
        public string insertarMulta(string descripcion, int monto, int idtipo_multa, int idsupervisor,int idcajero)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            string msg = "";
            try
            {
                //crear el objeto para realizar un insert
                string sql = "insert into multa_cajero(Descripcion,monto_multa,idtipo_multa,idturno_supervisor,idcajero)values('" + descripcion + "'," + monto + "," + idtipo_multa + "," + idsupervisor + ","+idcajero+")";
                SqlCommand cmd = new SqlCommand(sql, conn.conector);
                cmd.ExecuteNonQuery();
                //msg = "Nuevo alumno ingresado";
            }
            catch (SqlException)
            {
                msg = "Problema en la conexion ala base de datos.";
                //               msg = ex.Message;
            }
            conn.desconectar();
            return msg;
        }
        public int RecuperarIdTurnoSupervisor(int idsupervisor)
        {
            Conexion conn = new Conexion();
            conn.conectar();

            string sql = "select idturno_supervisor from turno_supervisor where idsupervisor=" +idsupervisor +"";
            SqlCommand cmd = new SqlCommand(sql, conn.conector);


            return Convert.ToInt32(cmd.ExecuteScalar());

        }
        public int RecuperarIdTurnoCajero(int idsupervisor,string fecha)
        {
            Conexion conn = new Conexion();
            conn.conectar();

            string sql = "select idturno from turno where idcajero=" + idsupervisor + " AND fecha='"+fecha+"'" ;
            SqlCommand cmd = new SqlCommand(sql, conn.conector);


            return Convert.ToInt32(cmd.ExecuteScalar());

        }
        public string InsertarVenta(string fecha, int totalVenta, int idtipo_pago, int idtipoventa, int idturno)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            string msg = "";
            try
            {
                //crear el objeto para realizar un insert
                string sql = "insert into ventas(fecha,total_venta,idtipo_pago,idtipo_vta,idturno)values('" + fecha+ "'," + totalVenta + "," + idtipo_pago + "," + idtipoventa + "," + idturno + ")";
                SqlCommand cmd = new SqlCommand(sql, conn.conector);
                cmd.ExecuteNonQuery();
                //msg = "Nuevo alumno ingresado";
            }
            catch (SqlException )
            {
                msg = "Problema en la conexion ala base de datos.";
                //               msg = ex.Message;
            }
            conn.desconectar();
            return msg;
        }
        public DataSet getVentasCajeros(string fecha,string fecharetiro)
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT cajero.idcajero,turno.fecha, cajero.nombre, cajero.apellido,SUM(distinct ventas.total_venta)as total,SUM(distinct retiro.monto_retiro) as retiros, SUM(distinct ventas.total_venta)-SUM(distinct retiro.monto_retiro)as Diferencia FROM ventas INNER JOIN turno ON ventas.idturno = turno.idturno INNER JOIN cajero ON turno.idcajero = cajero.idcajero INNER JOIN retiro ON cajero.idcajero = retiro.idcajero where ventas.fecha='"+fecha+"' AND retiro.fecha='"+fecharetiro+"' group by cajero.idcajero,turno.fecha,cajero.nombre,cajero.apellido", conn.conector);
            da.Fill(ds, "ventas");
            conn.desconectar();
            return ds;
        }
        public string InsertarRetiro(string fecha, int montoretiro, int idcajero, int idturno_supervisor)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            string msg = "";
            try
            {
                //crear el objeto para realizar un insert
                string sql = "insert into retiro(fecha,monto_retiro,idcajero,idturno_supervisor)values('" + fecha + "'," + montoretiro + "," + idcajero + "," + idturno_supervisor + ")";
                SqlCommand cmd = new SqlCommand(sql, conn.conector);
                cmd.ExecuteNonQuery();
                //msg = "Nuevo alumno ingresado";
            }
            catch (SqlException)
            {
                msg = "Problema en la conexion ala base de datos.";
                //               msg = ex.Message;
            }
            conn.desconectar();
            return msg;
        }
        public string InsertarArqueo(string fecha, int diferencia, int recepcionado,int idcajero, int idturno_supervisor)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            string msg = "";
            try
            {
                //crear el objeto para realizar un insert
                string sql = "insert into arqueo(fecha,diferencia_caja,monto_recepcionado,idcajero,idturno_supervisor)values('" + fecha + "'," + diferencia + "," + recepcionado + "," + idcajero + "," + idturno_supervisor + ")";
                SqlCommand cmd = new SqlCommand(sql, conn.conector);
                cmd.ExecuteNonQuery();
                //msg = "Nuevo alumno ingresado";
            }
            catch (SqlException ex)
            {
               // msg = "Problema en la conexion ala base de datos.";
                              msg = ex.Message;
            }
            conn.desconectar();
            return msg;
        }
        public int RecuperarStock(Int64 cod)
        {
            Conexion conn = new Conexion();
            conn.conectar();

            string sql = "select stock from producto where idproducto=" + cod + "";
            SqlCommand cmd = new SqlCommand(sql, conn.conector);


            return Convert.ToInt32(cmd.ExecuteScalar());

        }
        public string ActualizarStockProducto(Int64 cod,int stock)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            string msg = "";
            try
            {
                //crear el objeto para realizar un update

                string sql = "UPDATE producto SET stock=" + stock + " where idproducto=" + cod+ "";
                SqlCommand cmd = new SqlCommand(sql, conn.conector);
                cmd.ExecuteNonQuery();
                //msg = "Trabajo Finalizado";
            }
            catch (SqlException ex)
            {
                msg = ex.Message;
            }
            conn.desconectar();
            return msg;
        }
        public DataSet nombreVnd()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT descripcion FROM tipo_multa", conn.conector);
            da.Fill(ds, "tipo_multa");
            conn.desconectar();
            return ds;
        }
        public DataSet Ncajero()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT nombre FROM cajero", conn.conector);
            da.Fill(ds, "cajero");
            conn.desconectar();
            return ds;
        }
        public DataSet Acajero()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT apellido FROM cajero", conn.conector);
            da.Fill(ds, "cajero");
            conn.desconectar();
            return ds;
        }
        public DataSet turno_sup()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT inicio_sesion FROM turno_supervisor", conn.conector);
            da.Fill(ds, "turno_supervisor");
            conn.desconectar();
            return ds;
        }
        public DataSet turno_sup2()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT cierre_sesion FROM turno_supervisor", conn.conector);
            da.Fill(ds, "turno_supervisor");
            conn.desconectar();
            return ds;
        }
        public DataSet nombresupervisor()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT nombre_super FROM supervisor", conn.conector);
            da.Fill(ds, "supervisor");
            conn.desconectar();
            return ds;
        }
        public DataSet apellidosupervisor()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT apellido_super FROM supervisor", conn.conector);
            da.Fill(ds, "supervisor");
            conn.desconectar();
            return ds;
        }
        public DataSet getmulta(string tipomulta, string nombrecajero, string apellidocajero, string nombresupervisor, string apellidosupervisor, string condmulta, string condnombrecajero, string condapellicaje, string condnombresup, string condapellsup)
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT " + tipomulta + ", " + nombrecajero + ", " + apellidocajero + ", " + nombresupervisor + ", " + apellidosupervisor + " FROM  multa_cajero INNER JOIN tipo_multa ON multa_cajero.idtipo_multa = tipo_multa.idtipo_multa INNER JOIN cajero ON multa_cajero.idcajero = cajero.idcajero INNER JOIN turno_supervisor ON multa_cajero.idturno_supervisor = turno_supervisor.idturno_supervisor INNER JOIN supervisor ON turno_supervisor.idsupervisor = supervisor.idsupervisor where tipo_multa.descripcion='" + condmulta + "' OR cajero.nombre='" + condnombrecajero + "' OR cajero.apellido='" + condapellicaje + "' OR supervisor.nombre_super='" + condnombresup + "' OR supervisor.apellido_super='" + condapellsup + "' ", conn.conector);
            da.Fill(ds, "multa_cajero");
            conn.desconectar();
            return ds;
        }
        public DataSet getretiro(string nomcajero, string apellidocajro, string nombsuper, string apellidosuper, string monto_retiro, string condnomcajero, string condapcajero, string condnomsup, string condapesup, string condmontoretiro)
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT " + nomcajero + "," + apellidocajro + "," + nombsuper + "," + apellidosuper + "," + monto_retiro + "   FROM cajero INNER JOIN retiro ON cajero.idcajero = retiro.idcajero INNER JOIN turno_supervisor ON retiro.idturno_supervisor = turno_supervisor.idturno_supervisor INNER JOIN supervisor ON turno_supervisor.idsupervisor = supervisor.idsupervisor where cajero.nombre='" + condnomcajero + "' OR cajero.apellido='" + apellidocajro + "' OR supervisor.nombre_super='" + condnomsup + "' OR supervisor.apellido_super='" + condapesup + "' OR retiro.monto_retiro='" + condmontoretiro + "' ", conn.conector);
            da.Fill(ds, "retiro");
            conn.desconectar();
            return ds;
        }
        public DataSet getventa(string totvta, string tipopago, string nombcajero, string apellcajero, string rutcliente, string tipocliente, string condtotalvta, string condtipopago, string condnombcajero, string condapellcajero, string condrutcliente, string condtipocliente)
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT " + totvta + "," + tipopago + "," + nombcajero + "," + apellcajero + "," + rutcliente + "," + tipocliente + " FROM ventas INNER JOIN turno ON ventas.idturno = turno.idturno INNER JOIN cajero ON turno.idcajero = cajero.idcajero INNER JOIN  tipo_pago ON ventas.idtipo_pago = tipo_pago.idtipo_pago INNER JOIN cliente_boleta ON ventas.idventa = cliente_boleta.idventa INNER JOIN cliente ON cliente_boleta.idcliente = cliente.idcliente INNER JOIN tipo_cliente ON cliente.idtipocliente = tipo_cliente.idtipocliente where ventas.total_venta='" + condtotalvta + "' OR tipo_pago.tipo_de_pago='" + condtipopago + "' OR cajero.nombre='" + condnombcajero + "' OR cajero.apellido='" + condapellcajero + "' OR cliente.rut='" + condrutcliente + "' OR tipo_cliente.descripcion='" + condtipocliente + "' ", conn.conector);
            da.Fill(ds, "ventas");
            conn.desconectar();
            return ds;
        }
        public DataSet venta()
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT total_venta FROM ventas", conn.conector);
            da.Fill(ds, "venta");
            conn.desconectar();
            return ds;
        }
        public DataSet turno()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT inicio_sesion+' '+cierre_sesion FROM turno", conn.conector);
            da.Fill(ds, "turno");
            conn.desconectar();
            return ds;
        }
        public DataSet cajero2()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT nombre+' '+apellido FROM cajero", conn.conector);
            da.Fill(ds, "cajero");
            conn.desconectar();
            return ds;
        }
        public DataSet tipo_pago()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT tipo_de_pago FROM tipo_pago", conn.conector);
            da.Fill(ds, "tipo_pago");
            conn.desconectar();
            return ds;
        }
        public DataSet cliente2()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT rut FROM cliente", conn.conector);
            da.Fill(ds, "cliente");
            conn.desconectar();
            return ds;
        }
        public DataSet tipo_cliente()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT descripcion FROM tipo_cliente", conn.conector);
            da.Fill(ds, "tipo_cliente");
            conn.desconectar();
            return ds;
        }
        public DataSet producto()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT descripcion FROM tipo_producto", conn.conector);
            da.Fill(ds, "producto");
            conn.desconectar();
            return ds;
        }
        public DataSet fec_turno()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT fecha FROM turno", conn.conector);
            da.Fill(ds, "turno");
            conn.desconectar();
            return ds;
        }
        public DataSet nombre_producto()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT nombre FROM producto", conn.conector);
            da.Fill(ds, "producto");
            conn.desconectar();
            return ds;
        }
        public DataSet cajero3()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT nombre+' '+apellido FROM cajero", conn.conector);
            da.Fill(ds, "cajero");
            conn.desconectar();
            return ds;
        }
        public DataSet num_caja()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT idcaja FROM caja", conn.conector);
            da.Fill(ds, "caja");
            conn.desconectar();
            return ds;
        }
        public DataSet getcambio(string descrprod, string nombprod, string nombcajero, string apellcajero, string numcaja, string conddescrprod, string condnombprod, string condnombcajero, string condapellcajero, string condnumcaja)
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT " + descrprod + " , " + nombprod + "," + nombcajero + "," + apellcajero + "," + numcaja + " FROM producto INNER JOIN cambio_producto ON producto.idproducto = cambio_producto.idproducto INNER JOIN tipo_producto ON producto.idtipo_producto = tipo_producto.idtipo_producto CROSS JOIN caja_cajero INNER JOIN  cajero ON caja_cajero.idcajero = cajero.idcajero INNER JOIN caja ON caja_cajero.idcaja = caja.idcaja where tipo_producto.descripcion='" + conddescrprod + "' OR producto.nombre='" + condnombprod + "' OR cajero.nombre='" + condnombcajero + "' OR cajero.apellido='" + condapellcajero + "' OR caja.idcaja='" + condnumcaja + "' ", conn.conector);
            da.Fill(ds, "cambio_producto");
            conn.desconectar();
            return ds;
        }
        public DataSet monto_retiro()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT monto_retiro FROM retiro", conn.conector);
            da.Fill(ds, "retiro");
            conn.desconectar();
            return ds;
        }

        public DataSet Nombrecajero4()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT nombre FROM cajero", conn.conector);
            da.Fill(ds, "cajero");
            conn.desconectar();
            return ds;
        }
        public DataSet Apellidocajero4()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT apellido FROM cajero", conn.conector);
            da.Fill(ds, "cajero");
            conn.desconectar();
            return ds;
        }
        public DataSet turno_supervisor()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT inicio_sesion+' '+cierre_sesion FROM turno_supervisor", conn.conector);
            da.Fill(ds, "turno_supervisor");
            conn.desconectar();
            return ds;
        }
        public DataSet nombresupervisor3()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT nombre_super FROM supervisor", conn.conector);
            da.Fill(ds, "supervisor");
            conn.desconectar();
            return ds;
        }
        public DataSet apellidosupervisor3()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT apellido_super FROM supervisor", conn.conector);
            da.Fill(ds, "supervisor");
            conn.desconectar();
            return ds;
        }
        public DataSet montoArqueo()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT monto_recepcionado FROM arqueo", conn.conector);
            da.Fill(ds, "arqueo");
            conn.desconectar();
            return ds;
        }
        public DataSet rutcajero()//devuelve los nombres de los vendedores
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT rut FROM cajero", conn.conector);
            da.Fill(ds, "cajero");
            conn.desconectar();
            return ds;
        }
        public DataSet getarqueo(string montoarq, string rutcajero, string nombsup, string apesup, string numcaja, string condmontarq, string condrut, string condnombsup, string condapesup, string condnumcaja)
        {
            conn.conectar();
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("SELECT " + montoarq + " , " + rutcajero + " , " + nombsup + " , " + apesup + " , " + numcaja + " FROM arqueo INNER JOIN  cajero ON arqueo.idcajero = cajero.idcajero INNER JOIN  caja_cajero ON cajero.idcajero = caja_cajero.idcajero INNER JOIN  caja ON caja_cajero.idcaja = caja.idcaja INNER JOIN turno_supervisor ON arqueo.idturno_supervisor = turno_supervisor.idturno_supervisor INNER JOIN  supervisor ON turno_supervisor.idsupervisor = supervisor.idsupervisor where arqueo.monto_recepcionado='" + condmontarq + "' OR cajero.rut='" + condrut + "' OR supervisor.nombre_super'" + condnombsup + "' OR supervisor.apellido_super='" + condapesup + "' OR caja.idcaja='" + condnumcaja + "'  ", conn.conector);
            da.Fill(ds, "arqueo");
            conn.desconectar();
            return ds;

        }
    }


}
